Findings

Effect on exit exercise decisions

outcome_cols = c('started_exercise' = 'Started exercise', 
                    'completed_survey' = "Completed survey",
                    'redistribute_decision' = "Redistribute decision",
                    'dictator_decision' = "Dictator decision",
                    'lying_payout' = "Lying payout",
                    'trolley_decision' = "Trolley decision",
                    'skip_iat' = "Skip IAT score",
                    'iat_score' = "IAT Score",
                    'book_econ' = "Economics book",
                    'book_gender' = "Gender book",
                    'book_morality' = "Morality book",
                    'book_independence' = "Judicial independence book")

note <-  "Estimates are OLS with course fixed effects. Standard errors are clustered at the classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level."

# models_plot <- feols(fml = c(started_exercise, completed_survey, redistribute_decision,
#                              dictator_decision, lying_payout, trolley_decision, 
#                              skip_iat,iat_score, book_econ, book_gender, book_morality,
#                              book_independence) ~ i(round, monitoreo) | idcurso,
#                      data = data,
#                      split = ~round, cluster = ~idcurso+dni)

for (outcome in names(outcome_cols)) {
  
  formula <- as.formula(paste0(outcome, ' ~ monitoreo * teacher_female | idcurso | 0 | aula'))
  
  out_list <- list()
  
  for (r in 1:9) {
    model <- felm(formula, data = data %>% filter(round == r))
    
    out_list[[sprintf('Round %i', r)]] <- model
  }
  
  formula <- as.formula(paste0(outcome, ' ~ monitoreo * teacher_female | 0 | 0 | dni'))
  
  out_list[['Pure Treatment']] <- felm(formula, data = pure_control)
  out_list[['Perc. courses monitored']] <- felm(formula, data = monit_perc)
  
  
  out_name <- outcome_cols[[outcome]]
  cat('<h4></h4>')
  cat(sprintf('<h3>%s</h3>', out_name))
  
  stargazer(out_list,
            covariate.labels = c('Monitoring', 'Female Teacher', 'Monitoring x Female Teacher'),
            dep.var.labels = out_name,
            column.labels = names(out_list),
            notes = note,
            omit = 'Constant',
            type = 'html')
  
  feols(fml = as.formula(sprintf('%s ~ i(round, monitoreo) | idcurso', outcome)),
                       data = data, cluster = ~aula) %>%
    iplot(dict = outcome_cols, xlab = 'Round') 

}

Started exercise

Dependent variable:
Started exercise
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring 0.033 -0.051 0.059 0.014 -0.009 -0.004 0.002 -0.004 -0.069 -0.026 -0.002
(0.042) (0.067) (0.040) (0.056) (0.051) (0.053) (0.054) (0.053) (0.079) (0.041) (0.037)
Female Teacher -0.289*** -0.044 0.084** 0.033 -0.008 -0.058* -0.048 0.135*** -0.100* 0.011 -0.006
(0.031) (0.041) (0.042) (0.059) (0.059) (0.035) (0.034) (0.046) (0.054) (0.027) (0.022)
Monitoring x Female Teacher 0.105 -0.160 -0.056 0.057 -0.009 0.121 -0.00000 -0.003
(0.000) (0.099) (0.150) (0.106) (0.117) (0.000) (0.124) (0.000) (0.088) (0.038) (0.034)
Observations 558 558 558 557 536 534 534 529 532 3,550 4,845
R2 0.023 0.004 0.009 0.002 0.002 0.012 0.015 0.017 0.008 0.001 0.0001
Adjusted R2 0.018 -0.003 0.002 -0.006 -0.006 0.005 0.005 0.009 0.001 0.0003 -0.001
Residual Std. Error 0.376 (df = 554) 0.380 (df = 553) 0.379 (df = 553) 0.381 (df = 552) 0.385 (df = 531) 0.382 (df = 529) 0.382 (df = 528) 0.382 (df = 524) 0.383 (df = 527) 0.393 (df = 3546) 0.381 (df = 4841)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level.

Completed survey

Dependent variable:
Completed survey
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring -0.012 -0.090 -0.003 -0.052 -0.072 -0.065 -0.043 -0.053 -0.115 -0.071 -0.063
(0.043) (0.063) (0.042) (0.063) (0.058) (0.054) (0.055) (0.053) (0.092) (0.044) (0.041)
Female Teacher -0.355*** -0.095** 0.061 -0.013 -0.017 -0.082** -0.102*** 0.059 -0.120** -0.008 -0.027
(0.029) (0.042) (0.049) (0.075) (0.066) (0.038) (0.036) (0.044) (0.053) (0.030) (0.025)
Monitoring x Female Teacher 0.154 -0.156 -0.004 0.095 -0.023 0.131 0.010 0.005
(0.000) (0.108) (0.180) (0.102) (0.116) (0.000) (0.132) (0.000) (0.095) (0.042) (0.039)
Observations 558 558 558 557 536 534 534 529 532 3,550 4,845
R2 0.030 0.008 0.009 0.004 0.007 0.007 0.015 0.005 0.015 0.007 0.005
Adjusted R2 0.024 0.001 0.002 -0.003 -0.001 -0.0002 0.006 -0.003 0.008 0.006 0.004
Residual Std. Error 0.424 (df = 554) 0.429 (df = 553) 0.429 (df = 553) 0.431 (df = 552) 0.433 (df = 531) 0.431 (df = 529) 0.431 (df = 528) 0.432 (df = 524) 0.430 (df = 527) 0.428 (df = 3546) 0.429 (df = 4841)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level.

Redistribute decision

Dependent variable:
Redistribute decision
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring 0.173 0.092 0.015 0.292 0.362 0.331 0.465** 0.319 0.194 0.419** 0.395**
(0.190) (0.248) (0.266) (0.225) (0.283) (0.209) (0.182) (0.221) (0.326) (0.198) (0.184)
Female Teacher 0.281 0.206 -0.253 0.362 0.319 -0.384** 0.905*** -0.156 -0.240 0.206 0.134
(0.272) (0.375) (0.335) (0.365) (0.363) (0.171) (0.164) (0.127) (0.221) (0.139) (0.122)
Monitoring x Female Teacher 0.091 0.561 -0.250 -0.175 -0.951*** 0.152 -0.169 -0.108
(0.000) (0.450) (0.357) (0.390) (0.412) (0.000) (0.214) (0.000) (0.358) (0.186) (0.175)
Observations 456 456 456 455 435 434 434 429 432 2,847 3,948
R2 0.004 0.007 0.008 0.008 0.011 0.022 0.029 0.018 0.005 0.013 0.010
Adjusted R2 -0.003 -0.002 -0.001 -0.001 0.001 0.013 0.018 0.008 -0.005 0.012 0.009
Residual Std. Error 1.777 (df = 452) 1.783 (df = 451) 1.782 (df = 451) 1.777 (df = 450) 1.783 (df = 430) 1.781 (df = 429) 1.769 (df = 428) 1.774 (df = 424) 1.793 (df = 427) 1.760 (df = 2843) 1.773 (df = 3944)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level.

Dictator decision

Dependent variable:
Dictator decision
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring 0.119 0.307 -0.092 0.194 0.337** 0.187 0.069 0.062 0.118 0.101 0.106
(0.173) (0.243) (0.229) (0.141) (0.141) (0.137) (0.137) (0.151) (0.173) (0.203) (0.189)
Female Teacher 0.173 0.426 -0.309 0.346 0.509** 0.271** 0.706*** -0.037 -0.144 0.170 0.033
(0.118) (0.419) (0.209) (0.358) (0.234) (0.124) (0.096) (0.139) (0.215) (0.152) (0.131)
Monitoring x Female Teacher -0.601 0.568** -0.299 -0.617* -0.414*** -0.110 -0.090 0.046
(0.000) (0.489) (0.251) (0.433) (0.353) (0.000) (0.148) (0.000) (0.227) (0.201) (0.188)
Observations 454 454 454 453 433 432 432 427 430 2,829 3,930
R2 0.004 0.008 0.008 0.006 0.010 0.004 0.009 0.0004 0.004 0.001 0.001
Adjusted R2 -0.003 -0.001 -0.001 -0.003 0.001 -0.005 -0.003 -0.009 -0.005 0.0004 0.0002
Residual Std. Error 1.839 (df = 450) 1.842 (df = 449) 1.843 (df = 449) 1.843 (df = 448) 1.876 (df = 428) 1.880 (df = 427) 1.877 (df = 426) 1.863 (df = 422) 1.884 (df = 425) 1.807 (df = 2825) 1.855 (df = 3926)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level.

Lying payout

Dependent variable:
Lying payout
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring 0.0002 0.015 0.022 0.031** -0.003 0.025 0.018 0.027 0.034 0.024 0.019
(0.025) (0.037) (0.022) (0.016) (0.033) (0.028) (0.029) (0.029) (0.022) (0.032) (0.028)
Female Teacher 0.138*** 0.013 0.032 0.111** -0.020 -0.010 -0.011 -0.038 0.117 0.029 0.021
(0.020) (0.032) (0.035) (0.054) (0.040) (0.024) (0.025) (0.023) (0.074) (0.026) (0.018)
Monitoring x Female Teacher -0.007 0.019 -0.069 0.052 0.045 -0.114 -0.003 0.003
(0.000) (0.052) (0.062) (0.077) (0.064) (0.000) (0.057) (0.000) (0.080) (0.035) (0.031)
Observations 452 452 452 451 431 430 430 425 428 2,811 3,912
R2 0.009 0.002 0.005 0.016 0.004 0.003 0.004 0.004 0.013 0.002 0.002
Adjusted R2 0.002 -0.007 -0.004 0.007 -0.006 -0.006 -0.007 -0.005 0.004 0.001 0.001
Residual Std. Error 0.285 (df = 448) 0.286 (df = 447) 0.286 (df = 447) 0.285 (df = 446) 0.293 (df = 426) 0.293 (df = 425) 0.294 (df = 424) 0.295 (df = 420) 0.293 (df = 423) 0.338 (df = 2807) 0.291 (df = 3908)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level.

Trolley decision

Dependent variable:
Trolley decision
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring 0.024 0.021 0.004 0.024 0.047 -0.015 0.005 -0.030 0.011 0.007 0.008
(0.038) (0.042) (0.040) (0.048) (0.056) (0.039) (0.043) (0.037) (0.044) (0.049) (0.045)
Female Teacher -0.083* -0.010 -0.016 -0.030 0.047 -0.059 0.026 -0.040* -0.105 -0.008 -0.011
(0.049) (0.071) (0.065) (0.066) (0.060) (0.040) (0.040) (0.021) (0.091) (0.032) (0.026)
Monitoring x Female Teacher 0.006 0.053 -0.017 -0.087 -0.098 0.021 -0.016 -0.019
(0.000) (0.082) (0.094) (0.069) (0.062) (0.000) (0.060) (0.000) (0.096) (0.044) (0.040)
Observations 451 451 451 450 430 429 429 424 427 2,802 3,903
R2 0.003 0.002 0.002 0.003 0.003 0.008 0.010 0.011 0.009 0.0003 0.001
Adjusted R2 -0.004 -0.007 -0.007 -0.006 -0.006 -0.002 -0.001 0.001 -0.001 -0.001 -0.0003
Residual Std. Error 0.420 (df = 447) 0.420 (df = 446) 0.420 (df = 446) 0.420 (df = 445) 0.423 (df = 425) 0.421 (df = 424) 0.421 (df = 423) 0.422 (df = 419) 0.421 (df = 422) 0.423 (df = 2798) 0.420 (df = 3899)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level.

Skip IAT score

Dependent variable:
Skip IAT score
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring 0.087*** 0.076 0.055* 0.060*** 0.054** 0.092*** 0.091*** 0.079** 0.084** 0.117** 0.101**
(0.029) (0.050) (0.031) (0.021) (0.026) (0.031) (0.034) (0.032) (0.034) (0.048) (0.044)
Female Teacher 0.013 -0.004 -0.052 -0.060 -0.039 -0.059** 0.086*** 0.142*** 0.011 0.001 -0.003
(0.024) (0.044) (0.033) (0.054) (0.049) (0.024) (0.023) (0.028) (0.058) (0.031) (0.026)
Monitoring x Female Teacher 0.017 0.088** 0.122 0.123* 0.033 -0.013 0.035 0.039
(0.000) (0.067) (0.042) (0.077) (0.068) (0.000) (0.048) (0.000) (0.068) (0.045) (0.042)
Observations 461 461 461 460 440 439 439 434 437 2,873 3,991
R2 0.012 0.011 0.015 0.017 0.020 0.017 0.030 0.023 0.011 0.022 0.015
Adjusted R2 0.006 0.002 0.007 0.009 0.011 0.008 0.018 0.014 0.001 0.021 0.014
Residual Std. Error 0.411 (df = 457) 0.412 (df = 456) 0.411 (df = 456) 0.411 (df = 455) 0.408 (df = 435) 0.409 (df = 434) 0.405 (df = 433) 0.408 (df = 429) 0.413 (df = 432) 0.420 (df = 2869) 0.408 (df = 3987)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level.

IAT Score

Dependent variable:
IAT Score
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring 0.069** 0.101*** 0.084* 0.099*** 0.071* 0.078** 0.081** 0.097** 0.037 0.094** 0.089**
(0.033) (0.036) (0.046) (0.035) (0.041) (0.032) (0.032) (0.038) (0.039) (0.044) (0.041)
Female Teacher 0.006 0.009 0.020 -0.006 -0.062 -0.056** -0.182*** -0.016 -0.083*** -0.042 -0.034
(0.047) (0.053) (0.052) (0.047) (0.050) (0.025) (0.017) (0.034) (0.027) (0.031) (0.025)
Monitoring x Female Teacher -0.073 -0.025 -0.126** -0.003 0.178*** 0.024 -0.005 -0.001
(0.000) (0.077) (0.068) (0.060) (0.062) (0.000) (0.035) (0.000) (0.045) (0.040) (0.037)
Observations 292 292 292 291 277 278 278 274 275 1,754 2,530
R2 0.014 0.018 0.015 0.030 0.024 0.019 0.032 0.027 0.011 0.025 0.018
Adjusted R2 0.004 0.005 0.002 0.016 0.009 0.005 0.014 0.012 -0.003 0.024 0.017
Residual Std. Error 0.307 (df = 288) 0.306 (df = 287) 0.306 (df = 287) 0.305 (df = 286) 0.306 (df = 272) 0.307 (df = 273) 0.305 (df = 272) 0.307 (df = 269) 0.306 (df = 270) 0.301 (df = 1750) 0.304 (df = 2526)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level.

Economics book

Dependent variable:
Economics book
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring 0.0002 0.005 -0.0003 0.005 0.043*** 0.012 0.017 0.002 -0.036* -0.008 -0.00004
(0.017) (0.031) (0.021) (0.015) (0.017) (0.021) (0.022) (0.021) (0.020) (0.028) (0.027)
Female Teacher 0.012 0.006 0.005 -0.017 0.028 0.082*** 0.049*** -0.078*** -0.075*** -0.001 -0.002
(0.020) (0.024) (0.022) (0.027) (0.018) (0.017) (0.018) (0.015) (0.025) (0.017) (0.014)
Monitoring x Female Teacher 0.010 0.022 -0.012 -0.113*** -0.080* 0.058* -0.002 -0.011
(0.000) (0.048) (0.026) (0.050) (0.022) (0.000) (0.045) (0.000) (0.034) (0.021) (0.021)
Observations 439 439 439 438 419 418 418 413 416 2,721 3,801
R2 0.001 0.002 0.002 0.002 0.013 0.004 0.003 0.006 0.010 0.0004 0.0002
Adjusted R2 -0.006 -0.007 -0.008 -0.007 0.004 -0.006 -0.009 -0.004 0.0003 -0.001 -0.001
Residual Std. Error 0.265 (df = 435) 0.265 (df = 434) 0.265 (df = 434) 0.265 (df = 433) 0.254 (df = 414) 0.255 (df = 413) 0.256 (df = 412) 0.252 (df = 408) 0.255 (df = 411) 0.242 (df = 2717) 0.259 (df = 3797)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level.

Gender book

Dependent variable:
Gender book
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring 0.042 0.061 0.068 0.022 0.042 0.034 0.055 0.042 0.014 0.037 0.032
(0.042) (0.069) (0.054) (0.050) (0.055) (0.050) (0.049) (0.043) (0.041) (0.058) (0.054)
Female Teacher -0.190*** -0.020 0.045 -0.040 -0.011 0.123*** -0.112*** -0.067* 0.022 -0.043 -0.019
(0.030) (0.086) (0.052) (0.089) (0.078) (0.032) (0.029) (0.039) (0.036) (0.041) (0.034)
Monitoring x Female Teacher -0.063 -0.160** -0.007 -0.052 -0.066 0.036 -0.020 -0.028
(0.000) (0.109) (0.077) (0.098) (0.091) (0.000) (0.055) (0.000) (0.060) (0.054) (0.049)
Observations 439 439 439 438 419 418 418 413 416 2,721 3,801
R2 0.020 0.017 0.019 0.016 0.015 0.013 0.024 0.021 0.017 0.003 0.001
Adjusted R2 0.013 0.008 0.010 0.007 0.006 0.003 0.012 0.012 0.007 0.002 0.001
Residual Std. Error 0.491 (df = 435) 0.493 (df = 434) 0.492 (df = 434) 0.493 (df = 433) 0.492 (df = 414) 0.492 (df = 413) 0.491 (df = 412) 0.491 (df = 408) 0.492 (df = 411) 0.495 (df = 2717) 0.494 (df = 3797)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level.

Morality book

Dependent variable:
Morality book
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring -0.048 -0.071 -0.035 -0.023 -0.066 -0.043 -0.065* -0.060* -0.0003 -0.059 -0.051
(0.034) (0.053) (0.028) (0.036) (0.047) (0.036) (0.037) (0.033) (0.021) (0.044) (0.041)
Female Teacher 0.094*** -0.071 0.015 0.048 -0.053 0.062* -0.069** 0.070*** 0.074 0.021 0.005
(0.025) (0.043) (0.046) (0.084) (0.051) (0.032) (0.030) (0.026) (0.058) (0.033) (0.027)
Monitoring x Female Teacher 0.111 0.015 -0.057 0.093* 0.169*** -0.150** -0.001 0.013
(0.000) (0.072) (0.060) (0.090) (0.055) (0.000) (0.044) (0.000) (0.074) (0.042) (0.038)
Observations 439 439 439 438 419 418 418 413 416 2,721 3,801
R2 0.017 0.018 0.015 0.016 0.014 0.011 0.016 0.019 0.022 0.006 0.003
Adjusted R2 0.010 0.009 0.006 0.007 0.004 0.002 0.004 0.009 0.012 0.005 0.003
Residual Std. Error 0.381 (df = 435) 0.381 (df = 434) 0.382 (df = 434) 0.382 (df = 433) 0.387 (df = 414) 0.390 (df = 413) 0.389 (df = 412) 0.384 (df = 408) 0.384 (df = 411) 0.380 (df = 2717) 0.385 (df = 3797)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level.

Judicial independence book

Dependent variable:
Judicial independence book
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring 0.006 0.005 -0.033 -0.005 -0.020 -0.004 -0.007 0.016 0.023 0.030 0.019
(0.034) (0.048) (0.037) (0.035) (0.043) (0.037) (0.044) (0.039) (0.037) (0.055) (0.051)
Female Teacher 0.084** 0.085** -0.064* 0.009 0.037 -0.267*** 0.131*** 0.076*** -0.020 0.023 0.016
(0.034) (0.040) (0.036) (0.063) (0.051) (0.023) (0.030) (0.028) (0.041) (0.041) (0.033)
Monitoring x Female Teacher -0.059 0.123** 0.075 0.072 -0.023 0.056 0.023 0.026
(0.000) (0.064) (0.050) (0.070) (0.062) (0.000) (0.060) (0.000) (0.052) (0.053) (0.048)
Observations 439 439 439 438 419 418 418 413 416 2,721 3,801
R2 0.004 0.005 0.006 0.006 0.007 0.015 0.011 0.008 0.004 0.003 0.001
Adjusted R2 -0.003 -0.004 -0.003 -0.003 -0.003 0.005 -0.001 -0.002 -0.005 0.002 0.001
Residual Std. Error 0.470 (df = 435) 0.469 (df = 434) 0.469 (df = 434) 0.469 (df = 433) 0.471 (df = 414) 0.470 (df = 413) 0.470 (df = 412) 0.471 (df = 408) 0.472 (df = 411) 0.470 (df = 2717) 0.469 (df = 3797)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level.

Effect on exit survey answers

outcome_cols = c('work_satisfied_likert' = 'Satisfied with work',
                 'work_important_likert' = 'Work is important',
                 'motivated_likert' = 'Motivated to become better judge/prosecutor',
                 'trust_likert' = 'Trust in judicial system',
                 'learning_satisfied_likert' = 'Satisfaction with learning',
                 'improve_likert' = 'Training is key for improvement of judicial system',
                 'professor_likert' = 'Professors provide motivation',
                 'growth_1_likert' = 'Growth 1: I truly think people can change',
                 'growth_2_likert' = 'Growth 2: I can always change how smart I am',
                 "avg_growth_likert" = 'Average growth',
                 'challenge_1_likert' = 'Challenge 1: I enjoy projects that take years to be completed',
                 'challenge_2_likert' = 'Challenge 2: What I do everyday is connected to my deepest personal values',
                 'challenge_3_likert' = 'Challenge 3: There is at least one topic or activity that I never get bored thinking about',
                 'challenge_4_likert' = 'Challenge 4: I am hardworking',
                 "avg_challenge_likert" = 'Average challenge',
                 "empowerment_1_likert" = 'Empowerment 1: I question my own opinions, positions and points of view because they could be wrong',
                 "empowerment_2_likert" = "Empowerment 2: I recognize the value of opinions that are different than mine",
                 'avg_empowerment_likert' = 'Average empowerment',
                 "curiosity_1_likert" = 'Curiosity 1: I was so absorbed in learning that I lost track of time',
                 "curiosity_2_likert" = 'Curiosity 2: I explored a completely new idea or topic just for fun',
                 'avg_curiosity_likert' = 'Average curiosity',
                 "goal_1_likert" = 'Goal setting 1: I reflect on my life goals and the type of person I want to be',
                 "goal_2_likert" = 'Goal setting 2: When planning  my day, I think about how my activities are related to what I want to achieve in life',
                 'avg_goal_likert' = 'Average goal setting',
                 "gratitude_1_likert" = 'Gratitude 1: I say "Thank you"',
                 "gratitude_2_likert" = 'Gratitude 2: I did something nice to show my appreciation',
                 "avg_gratitude_likert" = 'Average gratitude')

note <-  "Estimates are OLS with course fixed effects. Standard errors are clustered at the student and classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level. Dependent variables are in a [-1, 1] likert scale."

for (outcome in names(outcome_cols)) {
  
  formula <- as.formula(paste0(outcome, ' ~ monitoreo * teacher_female | idcurso | 0 | aula'))
  
  out_list <- list()
  
  for (r in 1:9) {
    model <- felm(formula, data = data %>% filter(round == r))
    
    out_list[[sprintf('Round %i', r)]] <- model
  }
  
  formula <- as.formula(paste0(outcome, ' ~ monitoreo * teacher_female | 0 | 0 | dni'))
  
  out_list[['Pure Treatment']] <- felm(formula, data = pure_control)
  out_list[['Perc. courses monitored']] <- felm(formula, data = monit_perc)
  

  out_name <- outcome_cols[[outcome]]
  cat('<h4></h4>')
  cat(sprintf('<h3>%s</h3>', out_name))
  
  stargazer(out_list,
            covariate.labels = c('Monitoring', 'Female Teacher', 'Monitoring x Female Teacher'),
            dep.var.labels = out_name,
            column.labels = names(out_list),
            notes = note,
            omit = 'Constant',
            type = 'html')
  
  feols(fml = as.formula(sprintf('%s ~ i(round, monitoreo) | idcurso', outcome)),
                       data = data, cluster = ~aula) %>%
    iplot(dict = outcome_cols, xlab = 'Round') 
  
}

Satisfied with work

Dependent variable:
Satisfied with work
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring 0.015 -0.007 0.001 -0.035 0.030 0.029 0.061 0.046 0.009 0.021 0.021
(0.036) (0.048) (0.047) (0.032) (0.041) (0.055) (0.060) (0.063) (0.035) (0.072) (0.068)
Female Teacher -0.019 0.095** -0.036 -0.075 0.015 0.082* 0.210*** 0.031 -0.049 0.009 -0.001
(0.026) (0.039) (0.051) (0.059) (0.069) (0.045) (0.042) (0.053) (0.035) (0.047) (0.039)
Monitoring x Female Teacher -0.038 -0.034 0.176** -0.033 -0.215*** 0.075 0.014 0.027
(0.000) (0.086) (0.064) (0.077) (0.079) (0.000) (0.068) (0.000) (0.072) (0.065) (0.061)
Observations 459 459 459 458 439 438 438 433 436 2,864 3,978
R2 0.002 0.004 0.003 0.005 0.001 0.002 0.006 0.003 0.001 0.001 0.0005
Adjusted R2 -0.005 -0.005 -0.006 -0.004 -0.008 -0.008 -0.006 -0.006 -0.008 -0.001 -0.0003
Residual Std. Error 0.658 (df = 455) 0.658 (df = 454) 0.658 (df = 454) 0.658 (df = 453) 0.665 (df = 434) 0.666 (df = 433) 0.665 (df = 432) 0.660 (df = 428) 0.667 (df = 431) 0.631 (df = 2860) 0.659 (df = 3974)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the student and classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level. Dependent variables are in a [-1, 1] likert scale.

Work is important

Dependent variable:
Work is important
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring 0.014 -0.026 -0.006 -0.046 0.030 0.024 0.059 0.044 0.024 0.023 0.019
(0.047) (0.061) (0.054) (0.041) (0.060) (0.061) (0.063) (0.066) (0.033) (0.074) (0.070)
Female Teacher 0.046 0.098* -0.050 -0.106 0.023 0.0005 0.216*** 0.078 -0.119*** -0.007 -0.013
(0.041) (0.051) (0.060) (0.069) (0.076) (0.049) (0.046) (0.058) (0.035) (0.048) (0.040)
Monitoring x Female Teacher 0.015 0.012 0.242** -0.002 -0.174** 0.129* 0.049 0.066
(0.000) (0.102) (0.083) (0.098) (0.090) (0.000) (0.069) (0.000) (0.075) (0.066) (0.062)
Observations 459 459 459 458 439 438 438 433 436 2,864 3,978
R2 0.002 0.006 0.002 0.008 0.001 0.001 0.006 0.003 0.004 0.001 0.001
Adjusted R2 -0.005 -0.002 -0.006 -0.001 -0.008 -0.009 -0.005 -0.006 -0.005 0.0001 0.0003
Residual Std. Error 0.669 (df = 455) 0.669 (df = 454) 0.670 (df = 454) 0.669 (df = 453) 0.678 (df = 434) 0.679 (df = 433) 0.678 (df = 432) 0.674 (df = 428) 0.678 (df = 431) 0.648 (df = 2860) 0.671 (df = 3974)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the student and classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level. Dependent variables are in a [-1, 1] likert scale.

Motivated to become better judge/prosecutor

Dependent variable:
Motivated to become better judge/prosecutor
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring 0.006 -0.016 -0.038 -0.054 0.022 0.007 0.049 0.030 0.015 0.008 0.006
(0.045) (0.055) (0.054) (0.037) (0.051) (0.059) (0.062) (0.064) (0.038) (0.074) (0.071)
Female Teacher 0.027 0.085** -0.077 -0.114 0.007 -0.079 0.200*** 0.069 -0.089** -0.016 -0.024
(0.049) (0.042) (0.058) (0.071) (0.080) (0.048) (0.047) (0.054) (0.040) (0.048) (0.040)
Monitoring x Female Teacher -0.010 0.077 0.225** -0.004 -0.173** 0.075 0.051 0.064
(0.000) (0.092) (0.068) (0.098) (0.093) (0.000) (0.068) (0.000) (0.073) (0.067) (0.062)
Observations 459 459 459 458 439 438 438 433 436 2,864 3,978
R2 0.001 0.003 0.002 0.006 0.0005 0.001 0.004 0.003 0.002 0.001 0.001
Adjusted R2 -0.006 -0.005 -0.006 -0.003 -0.009 -0.009 -0.007 -0.007 -0.008 -0.001 -0.0002
Residual Std. Error 0.676 (df = 455) 0.676 (df = 454) 0.676 (df = 454) 0.675 (df = 453) 0.684 (df = 434) 0.685 (df = 433) 0.684 (df = 432) 0.678 (df = 428) 0.686 (df = 431) 0.651 (df = 2860) 0.677 (df = 3974)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the student and classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level. Dependent variables are in a [-1, 1] likert scale.

Trust in judicial system

Dependent variable:
Trust in judicial system
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring -0.017 -0.036 -0.044 -0.064** -0.016 -0.009 0.030 0.004 -0.043** -0.035 -0.021
(0.040) (0.050) (0.039) (0.027) (0.053) (0.062) (0.065) (0.071) (0.021) (0.068) (0.065)
Female Teacher 0.038 0.100*** -0.057 -0.081 0.012 -0.027 0.255*** 0.054 -0.086 -0.018 -0.016
(0.027) (0.036) (0.051) (0.083) (0.064) (0.051) (0.047) (0.059) (0.090) (0.047) (0.039)
Monitoring x Female Teacher -0.027 0.050 0.210** -0.006 -0.226*** 0.169* 0.068 0.070
(0.000) (0.090) (0.060) (0.095) (0.073) (0.000) (0.071) (0.000) (0.102) (0.065) (0.060)
Observations 458 458 458 457 438 437 437 432 435 2,864 3,969
R2 0.003 0.007 0.004 0.008 0.003 0.003 0.010 0.005 0.004 0.001 0.001
Adjusted R2 -0.003 -0.002 -0.005 -0.0004 -0.006 -0.006 -0.002 -0.004 -0.005 -0.0001 -0.0002
Residual Std. Error 0.637 (df = 454) 0.636 (df = 453) 0.637 (df = 453) 0.636 (df = 452) 0.643 (df = 433) 0.643 (df = 432) 0.641 (df = 431) 0.639 (df = 427) 0.643 (df = 430) 0.609 (df = 2860) 0.637 (df = 3965)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the student and classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level. Dependent variables are in a [-1, 1] likert scale.

Satisfaction with learning

Dependent variable:
Satisfaction with learning
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring 0.044 0.033 0.041 0.005 0.075 0.064 0.095 0.069 0.069** 0.060 0.075
(0.039) (0.057) (0.050) (0.038) (0.047) (0.052) (0.059) (0.057) (0.033) (0.074) (0.070)
Female Teacher 0.027 0.078* -0.018 -0.057 0.047 0.043 0.165*** 0.082* -0.087*** 0.002 0.0004
(0.034) (0.040) (0.050) (0.055) (0.058) (0.042) (0.043) (0.048) (0.024) (0.050) (0.042)
Monitoring x Female Teacher -0.039 -0.004 0.171** -0.032 -0.150** 0.068 0.020 0.027
(0.000) (0.085) (0.066) (0.067) (0.073) (0.000) (0.072) (0.000) (0.056) (0.069) (0.064)
Observations 454 454 454 453 435 434 434 429 432 2,847 3,939
R2 0.001 0.002 0.002 0.005 0.003 0.003 0.007 0.007 0.005 0.003 0.003
Adjusted R2 -0.005 -0.007 -0.007 -0.004 -0.006 -0.006 -0.005 -0.003 -0.005 0.002 0.002
Residual Std. Error 0.678 (df = 450) 0.678 (df = 449) 0.679 (df = 449) 0.678 (df = 448) 0.678 (df = 430) 0.678 (df = 429) 0.678 (df = 428) 0.672 (df = 424) 0.682 (df = 427) 0.650 (df = 2843) 0.675 (df = 3935)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the student and classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level. Dependent variables are in a [-1, 1] likert scale.

Training is key for improvement of judicial system

Dependent variable:
Training is key for improvement of judicial system
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring 0.008 -0.022 -0.037 -0.047 0.032 0.020 0.062 0.042 0.025 0.012 0.015
(0.044) (0.056) (0.057) (0.041) (0.050) (0.057) (0.060) (0.061) (0.037) (0.074) (0.071)
Female Teacher 0.034 0.083 -0.081 -0.127* 0.038 -0.044 0.200*** 0.035 -0.093** -0.012 -0.017
(0.034) (0.055) (0.064) (0.070) (0.090) (0.049) (0.049) (0.050) (0.046) (0.047) (0.039)
Monitoring x Female Teacher 0.011 0.083 0.226*** -0.019 -0.189*** 0.064 0.042 0.054
(0.000) (0.090) (0.073) (0.085) (0.096) (0.000) (0.070) (0.000) (0.082) (0.066) (0.062)
Observations 460 460 460 459 439 438 438 433 436 2,864 3,982
R2 0.001 0.004 0.002 0.006 0.001 0.0004 0.005 0.002 0.002 0.001 0.001
Adjusted R2 -0.006 -0.005 -0.006 -0.003 -0.008 -0.009 -0.007 -0.007 -0.007 -0.001 -0.0002
Residual Std. Error 0.675 (df = 456) 0.675 (df = 455) 0.675 (df = 455) 0.674 (df = 454) 0.684 (df = 434) 0.684 (df = 433) 0.684 (df = 432) 0.678 (df = 428) 0.685 (df = 431) 0.650 (df = 2860) 0.677 (df = 3978)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the student and classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level. Dependent variables are in a [-1, 1] likert scale.

Professors provide motivation

Dependent variable:
Professors provide motivation
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring 0.059 0.029 0.077* 0.016 0.091 0.081 0.134** 0.105 0.052 0.095 0.095
(0.043) (0.057) (0.045) (0.043) (0.061) (0.057) (0.064) (0.065) (0.051) (0.073) (0.069)
Female Teacher -0.088*** 0.116*** 0.021 -0.044 0.041 0.063 0.218*** 0.017 -0.129*** 0.025 0.025
(0.032) (0.042) (0.059) (0.078) (0.065) (0.049) (0.046) (0.061) (0.030) (0.049) (0.041)
Monitoring x Female Teacher -0.066 -0.102 0.148 -0.058 -0.275*** 0.166** -0.023 -0.017
(0.000) (0.092) (0.063) (0.091) (0.073) (0.000) (0.086) (0.000) (0.077) (0.069) (0.064)
Observations 459 459 459 458 439 438 438 433 436 2,864 3,978
R2 0.002 0.004 0.003 0.005 0.004 0.004 0.011 0.007 0.009 0.005 0.004
Adjusted R2 -0.004 -0.005 -0.006 -0.004 -0.006 -0.006 -0.001 -0.002 -0.0005 0.004 0.003
Residual Std. Error 0.667 (df = 455) 0.667 (df = 454) 0.667 (df = 454) 0.667 (df = 453) 0.668 (df = 434) 0.668 (df = 433) 0.667 (df = 432) 0.664 (df = 428) 0.668 (df = 431) 0.646 (df = 2860) 0.664 (df = 3974)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the student and classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level. Dependent variables are in a [-1, 1] likert scale.

Growth 1: I truly think people can change

Dependent variable:
Growth 1: I truly think people can change
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring -0.069* -0.076 -0.052 -0.086* -0.074 -0.052 -0.042 -0.050 -0.005 -0.078 -0.061
(0.039) (0.062) (0.046) (0.044) (0.046) (0.042) (0.044) (0.044) (0.032) (0.051) (0.049)
Female Teacher 0.078** -0.005 0.033 -0.029 -0.074** 0.058* 0.151*** 0.054 0.013 0.018 0.026
(0.030) (0.030) (0.034) (0.048) (0.035) (0.034) (0.027) (0.045) (0.065) (0.036) (0.030)
Monitoring x Female Teacher 0.010 0.028 0.107 0.060 -0.080 -0.010 0.007 -0.002
(0.000) (0.081) (0.048) (0.069) (0.077) (0.000) (0.049) (0.000) (0.079) (0.052) (0.049)
Observations 453 453 453 452 433 432 432 427 430 2,847 3,926
R2 0.007 0.008 0.008 0.009 0.012 0.010 0.013 0.008 0.011 0.007 0.004
Adjusted R2 0.001 -0.001 -0.001 0.0004 0.002 0.0003 0.002 -0.001 0.002 0.006 0.003
Residual Std. Error 0.461 (df = 449) 0.462 (df = 448) 0.462 (df = 448) 0.462 (df = 447) 0.460 (df = 428) 0.461 (df = 427) 0.461 (df = 426) 0.457 (df = 422) 0.467 (df = 425) 0.452 (df = 2843) 0.462 (df = 3922)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the student and classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level. Dependent variables are in a [-1, 1] likert scale.

Growth 2: I can always change how smart I am

Dependent variable:
Growth 2: I can always change how smart I am
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring -0.085* -0.052 -0.116** -0.060 -0.099* -0.048 -0.049 -0.059 0.060 -0.044 -0.049
(0.047) (0.081) (0.059) (0.054) (0.059) (0.054) (0.055) (0.057) (0.040) (0.059) (0.056)
Female Teacher 0.150*** 0.065 -0.032 0.015 -0.086 0.085** 0.195*** 0.104* 0.136* 0.044 0.056*
(0.036) (0.053) (0.058) (0.082) (0.065) (0.043) (0.033) (0.058) (0.075) (0.039) (0.032)
Monitoring x Female Teacher -0.070 0.185*** -0.058 0.048 -0.103* -0.211** -0.038 -0.056
(0.000) (0.097) (0.068) (0.092) (0.080) (0.000) (0.062) (0.000) (0.093) (0.055) (0.052)
Observations 445 445 445 444 425 425 424 419 422 2,793 3,855
R2 0.016 0.014 0.019 0.014 0.016 0.015 0.022 0.016 0.020 0.003 0.003
Adjusted R2 0.009 0.005 0.010 0.005 0.006 0.005 0.010 0.006 0.011 0.002 0.003
Residual Std. Error 0.529 (df = 441) 0.530 (df = 440) 0.529 (df = 440) 0.530 (df = 439) 0.525 (df = 420) 0.527 (df = 420) 0.526 (df = 418) 0.523 (df = 414) 0.530 (df = 417) 0.514 (df = 2789) 0.529 (df = 3851)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the student and classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level. Dependent variables are in a [-1, 1] likert scale.

Average growth

Dependent variable:
Average growth
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring -0.077* -0.066 -0.086* -0.074 -0.087* -0.053 -0.046 -0.057 0.022 -0.063 -0.056
(0.040) (0.066) (0.049) (0.046) (0.048) (0.045) (0.046) (0.049) (0.034) (0.050) (0.047)
Female Teacher 0.092*** 0.029 -0.001 -0.008 -0.080* 0.071* 0.172*** 0.072 0.074 0.030 0.042
(0.029) (0.039) (0.044) (0.064) (0.048) (0.036) (0.028) (0.050) (0.070) (0.034) (0.028)
Monitoring x Female Teacher -0.031 0.099* 0.020 0.046 -0.106** -0.103 -0.020 -0.034
(0.000) (0.080) (0.054) (0.075) (0.068) (0.000) (0.051) (0.000) (0.083) (0.050) (0.047)
Observations 445 445 445 444 425 425 424 419 422 2,793 3,855
R2 0.014 0.013 0.015 0.012 0.018 0.015 0.021 0.015 0.018 0.006 0.005
Adjusted R2 0.007 0.004 0.006 0.003 0.008 0.005 0.009 0.005 0.008 0.005 0.004
Residual Std. Error 0.450 (df = 441) 0.451 (df = 440) 0.451 (df = 440) 0.452 (df = 439) 0.450 (df = 420) 0.451 (df = 420) 0.450 (df = 418) 0.445 (df = 414) 0.456 (df = 417) 0.439 (df = 2789) 0.452 (df = 3851)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the student and classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level. Dependent variables are in a [-1, 1] likert scale.

Challenge 1: I enjoy projects that take years to be completed

Dependent variable:
Challenge 1: I enjoy projects that take years to be completed
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring -0.047 0.017 -0.121 -0.018 -0.063 -0.041 -0.077 -0.093 0.055 -0.065 -0.072
(0.069) (0.094) (0.099) (0.062) (0.084) (0.068) (0.068) (0.066) (0.053) (0.069) (0.065)
Female Teacher 0.084 -0.053 -0.099 -0.160*** -0.097 -0.081 -0.117** 0.175*** 0.027 -0.103** -0.091**
(0.057) (0.074) (0.082) (0.058) (0.086) (0.051) (0.051) (0.061) (0.207) (0.048) (0.040)
Monitoring x Female Teacher -0.072 0.259** -0.101 0.043 0.287*** -0.211 0.069 0.074
(0.000) (0.154) (0.109) (0.137) (0.140) (0.000) (0.075) (0.000) (0.217) (0.067) (0.063)
Observations 451 451 451 450 431 430 430 426 429 2,838 3,910
R2 0.002 0.006 0.009 0.022 0.006 0.004 0.009 0.008 0.012 0.004 0.003
Adjusted R2 -0.004 -0.003 0.0001 0.013 -0.004 -0.005 -0.003 -0.002 0.002 0.003 0.003
Residual Std. Error 0.636 (df = 447) 0.637 (df = 446) 0.636 (df = 446) 0.632 (df = 445) 0.637 (df = 426) 0.636 (df = 425) 0.634 (df = 424) 0.634 (df = 421) 0.631 (df = 424) 0.612 (df = 2834) 0.633 (df = 3906)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the student and classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level. Dependent variables are in a [-1, 1] likert scale.

Challenge 2: What I do everyday is connected to my deepest personal values

Dependent variable:
Challenge 2: What I do everyday is connected to my deepest personal values
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring -0.050 -0.077 -0.062 -0.071 -0.075 -0.029 -0.030 -0.028 0.068** -0.037 -0.036
(0.038) (0.057) (0.045) (0.046) (0.050) (0.047) (0.052) (0.045) (0.030) (0.049) (0.047)
Female Teacher 0.077* 0.034 -0.022 -0.065 -0.051 0.017 0.149*** 0.038 0.079 -0.001 0.016
(0.041) (0.062) (0.041) (0.042) (0.044) (0.036) (0.032) (0.045) (0.063) (0.032) (0.027)
Monitoring x Female Teacher 0.030 0.047 0.107* 0.074 -0.120** -0.118 0.006 0.0002
(0.000) (0.087) (0.061) (0.055) (0.062) (0.000) (0.055) (0.000) (0.082) (0.051) (0.048)
Observations 450 450 450 449 430 429 429 425 427 2,838 3,900
R2 0.004 0.007 0.003 0.006 0.005 0.006 0.011 0.005 0.007 0.002 0.001
Adjusted R2 -0.003 -0.002 -0.005 -0.003 -0.004 -0.003 -0.001 -0.005 -0.003 0.001 0.001
Residual Std. Error 0.454 (df = 446) 0.453 (df = 445) 0.454 (df = 445) 0.454 (df = 444) 0.453 (df = 425) 0.454 (df = 424) 0.453 (df = 423) 0.448 (df = 420) 0.462 (df = 422) 0.446 (df = 2834) 0.454 (df = 3896)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the student and classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level. Dependent variables are in a [-1, 1] likert scale.

Challenge 3: There is at least one topic or activity that I never get bored thinking about

Dependent variable:
Challenge 3: There is at least one topic or activity that I never get bored thinking about
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring -0.074* -0.099* -0.110** -0.073* -0.106** -0.125*** -0.121*** -0.138*** -0.024 -0.128** -0.109*
(0.039) (0.056) (0.047) (0.043) (0.053) (0.040) (0.037) (0.040) (0.043) (0.060) (0.056)
Female Teacher 0.008 0.011 -0.070 0.019 -0.062 -0.074* 0.175*** 0.074** 0.174** -0.016 -0.007
(0.033) (0.046) (0.057) (0.074) (0.063) (0.042) (0.035) (0.030) (0.081) (0.035) (0.029)
Monitoring x Female Teacher 0.041 0.043 -0.006 0.067 -0.127*** -0.168* 0.029 0.023
(0.000) (0.071) (0.063) (0.078) (0.065) (0.000) (0.045) (0.000) (0.086) (0.057) (0.053)
Observations 452 452 452 451 432 431 431 426 429 2,838 3,917
R2 0.011 0.013 0.014 0.011 0.013 0.031 0.036 0.035 0.012 0.014 0.008
Adjusted R2 0.004 0.004 0.005 0.002 0.003 0.021 0.025 0.026 0.003 0.012 0.007
Residual Std. Error 0.524 (df = 448) 0.524 (df = 447) 0.524 (df = 447) 0.525 (df = 446) 0.525 (df = 427) 0.521 (df = 426) 0.520 (df = 425) 0.519 (df = 421) 0.530 (df = 424) 0.525 (df = 2834) 0.525 (df = 3913)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the student and classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level. Dependent variables are in a [-1, 1] likert scale.

Challenge 4: I am hardworking

Dependent variable:
Challenge 4: I am hardworking
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring -0.039 -0.103* -0.085 -0.074 -0.052 -0.037 -0.034 -0.058 0.021 -0.051 -0.052
(0.048) (0.060) (0.053) (0.049) (0.064) (0.052) (0.057) (0.058) (0.050) (0.049) (0.047)
Female Teacher 0.053 -0.047 -0.085* 0.010 -0.041 -0.093*** 0.122*** 0.062 0.111* -0.004 -0.008
(0.058) (0.035) (0.049) (0.068) (0.052) (0.034) (0.032) (0.059) (0.067) (0.031) (0.026)
Monitoring x Female Teacher 0.172* 0.101 0.158* 0.055 -0.068 -0.100 0.049 0.064
(0.000) (0.102) (0.071) (0.091) (0.080) (0.000) (0.060) (0.000) (0.084) (0.050) (0.047)
Observations 449 449 449 448 429 428 428 423 426 2,838 3,890
R2 0.002 0.010 0.006 0.014 0.003 0.005 0.008 0.007 0.005 0.003 0.003
Adjusted R2 -0.005 0.001 -0.003 0.006 -0.007 -0.004 -0.004 -0.003 -0.004 0.002 0.002
Residual Std. Error 0.447 (df = 445) 0.446 (df = 444) 0.447 (df = 444) 0.445 (df = 443) 0.454 (df = 424) 0.454 (df = 423) 0.454 (df = 422) 0.448 (df = 418) 0.454 (df = 421) 0.438 (df = 2834) 0.450 (df = 3886)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the student and classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level. Dependent variables are in a [-1, 1] likert scale.

Average challenge

Dependent variable:
Average challenge
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring -0.055 -0.069 -0.099** -0.068 -0.083* -0.062 -0.066 -0.080** 0.020 -0.070 -0.072*
(0.036) (0.054) (0.048) (0.043) (0.048) (0.040) (0.041) (0.039) (0.033) (0.043) (0.041)
Female Teacher 0.037 -0.015 -0.070 -0.050 -0.064 -0.096*** 0.082*** 0.095*** 0.096 -0.031 -0.023
(0.035) (0.042) (0.046) (0.049) (0.048) (0.032) (0.030) (0.036) (0.101) (0.027) (0.023)
Monitoring x Female Teacher 0.049 0.106* 0.056 0.073 -0.009 -0.141 0.042 0.044
(0.000) (0.067) (0.055) (0.058) (0.057) (0.000) (0.044) (0.000) (0.106) (0.045) (0.042)
Observations 443 443 443 442 423 422 422 419 421 2,811 3,839
R2 0.005 0.006 0.010 0.007 0.009 0.010 0.012 0.014 0.007 0.007 0.006
Adjusted R2 -0.001 -0.003 0.001 -0.002 -0.001 0.0002 -0.0001 0.004 -0.003 0.006 0.005
Residual Std. Error 0.396 (df = 439) 0.396 (df = 438) 0.395 (df = 438) 0.396 (df = 437) 0.398 (df = 418) 0.398 (df = 417) 0.398 (df = 416) 0.393 (df = 414) 0.400 (df = 416) 0.383 (df = 2807) 0.396 (df = 3835)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the student and classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level. Dependent variables are in a [-1, 1] likert scale.

Empowerment 1: I question my own opinions, positions and points of view because they could be wrong

Dependent variable:
Empowerment 1: I question my own opinions, positions and points of view because they could be wrong
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring 0.028 0.033 0.034 0.024 0.015 0.055 0.024 0.021 0.130*** 0.048 0.045
(0.043) (0.056) (0.052) (0.047) (0.052) (0.046) (0.045) (0.042) (0.040) (0.066) (0.063)
Female Teacher 0.134*** -0.008 0.008 -0.087 -0.106* -0.028 -0.021 -0.006 0.085** -0.070 -0.055
(0.045) (0.092) (0.051) (0.074) (0.059) (0.034) (0.034) (0.033) (0.037) (0.053) (0.043)
Monitoring x Female Teacher -0.021 0.044 0.052 0.098 0.034 -0.168** 0.079 0.060
(0.000) (0.108) (0.079) (0.085) (0.071) (0.000) (0.080) (0.000) (0.069) (0.069) (0.063)
Observations 448 448 448 447 428 427 427 422 425 2,820 3,881
R2 0.009 0.006 0.007 0.009 0.011 0.025 0.022 0.018 0.011 0.004 0.002
Adjusted R2 0.002 -0.002 -0.002 0.00005 0.002 0.016 0.011 0.008 0.002 0.003 0.002
Residual Std. Error 0.607 (df = 444) 0.609 (df = 443) 0.608 (df = 443) 0.609 (df = 442) 0.608 (df = 423) 0.601 (df = 422) 0.605 (df = 421) 0.608 (df = 417) 0.606 (df = 420) 0.595 (df = 2816) 0.607 (df = 3877)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the student and classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level. Dependent variables are in a [-1, 1] likert scale.

Empowerment 2: I recognize the value of opinions that are different than mine

Dependent variable:
Empowerment 2: I recognize the value of opinions that are different than mine
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring -0.028 -0.063 -0.066 -0.051 -0.042 -0.023 -0.014 -0.016 0.082** -0.004 -0.020
(0.045) (0.064) (0.054) (0.049) (0.055) (0.050) (0.054) (0.050) (0.041) (0.049) (0.046)
Female Teacher 0.006 -0.025 -0.067 -0.092 -0.089 0.010 0.068* -0.050 0.124* -0.025 -0.021
(0.046) (0.077) (0.057) (0.081) (0.063) (0.038) (0.038) (0.046) (0.065) (0.032) (0.026)
Monitoring x Female Teacher 0.070 0.083 0.093 0.065 -0.080 -0.150* 0.013 0.019
(0.000) (0.101) (0.067) (0.093) (0.078) (0.000) (0.063) (0.000) (0.079) (0.050) (0.046)
Observations 450 450 450 449 429 428 428 423 426 2,820 3,894
R2 0.002 0.004 0.005 0.006 0.005 0.010 0.011 0.012 0.009 0.0003 0.0004
Adjusted R2 -0.005 -0.005 -0.004 -0.003 -0.005 0.001 -0.001 0.003 -0.001 -0.001 -0.0003
Residual Std. Error 0.440 (df = 446) 0.440 (df = 445) 0.439 (df = 445) 0.439 (df = 444) 0.446 (df = 424) 0.445 (df = 423) 0.446 (df = 422) 0.439 (df = 418) 0.446 (df = 421) 0.435 (df = 2816) 0.443 (df = 3890)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the student and classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level. Dependent variables are in a [-1, 1] likert scale.

Average empowerment

Dependent variable:
Average empowerment
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring -0.001 -0.013 -0.016 -0.008 -0.009 0.019 0.005 0.006 0.113*** 0.026 0.015
(0.040) (0.059) (0.049) (0.044) (0.052) (0.045) (0.047) (0.045) (0.034) (0.051) (0.047)
Female Teacher 0.116*** -0.015 -0.029 -0.087 -0.095 -0.007 0.026 -0.029 0.107** -0.048 -0.038
(0.033) (0.084) (0.051) (0.077) (0.058) (0.034) (0.035) (0.039) (0.049) (0.037) (0.029)
Monitoring x Female Teacher 0.027 0.085 0.065 0.077 -0.004 -0.167** 0.052 0.046
(0.000) (0.103) (0.069) (0.085) (0.071) (0.000) (0.076) (0.000) (0.068) (0.053) (0.048)
Observations 446 446 446 445 426 425 425 420 423 2,802 3,863
R2 0.008 0.006 0.007 0.009 0.010 0.022 0.022 0.021 0.014 0.002 0.001
Adjusted R2 0.001 -0.003 -0.002 0.0004 0.0003 0.013 0.010 0.011 0.004 0.001 0.0003
Residual Std. Error 0.450 (df = 442) 0.451 (df = 441) 0.451 (df = 441) 0.451 (df = 440) 0.454 (df = 421) 0.451 (df = 420) 0.452 (df = 419) 0.451 (df = 415) 0.452 (df = 418) 0.451 (df = 2798) 0.452 (df = 3859)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the student and classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level. Dependent variables are in a [-1, 1] likert scale.

Curiosity 1: I was so absorbed in learning that I lost track of time

Dependent variable:
Curiosity 1: I was so absorbed in learning that I lost track of time
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring -0.097* -0.094 -0.127* -0.085 0.010 -0.029 -0.039 -0.056 -0.053 -0.054 -0.071
(0.059) (0.064) (0.072) (0.065) (0.062) (0.061) (0.062) (0.059) (0.064) (0.067) (0.063)
Female Teacher 0.155*** 0.048 -0.083 -0.013 0.154** -0.086* 0.268*** 0.225*** -0.053 0.015 0.012
(0.046) (0.088) (0.068) (0.098) (0.062) (0.052) (0.047) (0.044) (0.089) (0.050) (0.041)
Monitoring x Female Teacher -0.070 0.056 -0.013 -0.253* -0.091 0.125 0.010 0.022
(0.000) (0.116) (0.131) (0.147) (0.131) (0.000) (0.066) (0.000) (0.119) (0.065) (0.059)
Observations 456 456 456 455 435 434 434 429 432 2,846 3,947
R2 0.008 0.011 0.009 0.007 0.013 0.005 0.018 0.011 0.003 0.002 0.003
Adjusted R2 0.002 0.002 0.0002 -0.002 0.004 -0.004 0.007 0.002 -0.007 0.001 0.002
Residual Std. Error 0.600 (df = 452) 0.598 (df = 451) 0.599 (df = 451) 0.599 (df = 450) 0.603 (df = 430) 0.604 (df = 429) 0.600 (df = 428) 0.601 (df = 424) 0.601 (df = 427) 0.592 (df = 2842) 0.599 (df = 3943)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the student and classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level. Dependent variables are in a [-1, 1] likert scale.

Curiosity 2: I explored a completely new idea or topic just for fun

Dependent variable:
Curiosity 2: I explored a completely new idea or topic just for fun
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring -0.069 -0.044 -0.037 -0.008 -0.037 0.010 -0.015 0.009 0.099* -0.004 -0.023
(0.046) (0.050) (0.072) (0.057) (0.055) (0.051) (0.048) (0.048) (0.053) (0.061) (0.057)
Female Teacher 0.279*** 0.087* 0.043 0.112*** 0.003 0.011 0.163*** 0.030 0.099 0.033 0.029
(0.056) (0.046) (0.067) (0.042) (0.066) (0.035) (0.030) (0.038) (0.072) (0.041) (0.035)
Monitoring x Female Teacher -0.031 0.014 -0.169 -0.037 -0.007 -0.246** -0.021 -0.002
(0.000) (0.071) (0.151) (0.109) (0.117) (0.000) (0.074) (0.000) (0.110) (0.057) (0.052)
Observations 455 455 455 454 435 434 434 429 432 2,846 3,943
R2 0.011 0.005 0.005 0.008 0.003 0.004 0.014 0.004 0.013 0.0004 0.001
Adjusted R2 0.004 -0.004 -0.004 -0.001 -0.006 -0.005 0.002 -0.005 0.004 -0.001 0.00000
Residual Std. Error 0.557 (df = 451) 0.558 (df = 450) 0.558 (df = 450) 0.557 (df = 449) 0.562 (df = 430) 0.563 (df = 429) 0.559 (df = 428) 0.563 (df = 424) 0.556 (df = 427) 0.547 (df = 2842) 0.558 (df = 3939)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the student and classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level. Dependent variables are in a [-1, 1] likert scale.

Average curiosity

Dependent variable:
Average curiosity
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring -0.085* -0.074 -0.085 -0.048 -0.015 -0.011 -0.030 -0.026 0.025 -0.031 -0.048
(0.045) (0.046) (0.064) (0.053) (0.052) (0.046) (0.044) (0.045) (0.054) (0.056) (0.052)
Female Teacher 0.223*** 0.068 -0.022 0.051 0.080 -0.036 0.217*** 0.131*** 0.024 0.025 0.022
(0.045) (0.060) (0.058) (0.060) (0.052) (0.036) (0.030) (0.036) (0.079) (0.041) (0.033)
Monitoring x Female Teacher -0.045 0.041 -0.089 -0.144 -0.045 -0.067 -0.004 0.011
(0.000) (0.079) (0.136) (0.120) (0.112) (0.000) (0.053) (0.000) (0.104) (0.054) (0.048)
Observations 454 454 454 453 434 433 433 428 431 2,837 3,934
R2 0.012 0.009 0.007 0.008 0.008 0.006 0.022 0.009 0.002 0.001 0.002
Adjusted R2 0.006 0.0003 -0.002 -0.0004 -0.001 -0.004 0.010 -0.001 -0.007 0.0002 0.001
Residual Std. Error 0.495 (df = 450) 0.494 (df = 449) 0.495 (df = 449) 0.494 (df = 448) 0.502 (df = 429) 0.501 (df = 428) 0.498 (df = 427) 0.501 (df = 423) 0.499 (df = 426) 0.495 (df = 2833) 0.497 (df = 3930)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the student and classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level. Dependent variables are in a [-1, 1] likert scale.

Goal setting 1: I reflect on my life goals and the type of person I want to be

Dependent variable:
Goal setting 1: I reflect on my life goals and the type of person I want to be
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring 0.013 -0.016 0.074* 0.056 0.027 0.046 0.048 0.049 0.069* 0.049 0.051
(0.033) (0.041) (0.042) (0.043) (0.043) (0.036) (0.034) (0.038) (0.041) (0.047) (0.044)
Female Teacher 0.201*** -0.006 0.093** 0.076* -0.048 -0.029 0.058*** -0.030 -0.012 0.031 0.033
(0.037) (0.031) (0.040) (0.045) (0.055) (0.023) (0.018) (0.034) (0.066) (0.041) (0.032)
Monitoring x Female Teacher 0.090 -0.041 -0.092 -0.014 0.0003 -0.028 -0.019 -0.023
(0.000) (0.062) (0.098) (0.059) (0.066) (0.000) (0.093) (0.000) (0.084) (0.053) (0.047)
Observations 455 455 455 454 435 434 434 429 432 2,855 3,943
R2 0.010 0.005 0.009 0.005 0.005 0.009 0.011 0.007 0.008 0.003 0.003
Adjusted R2 0.003 -0.004 0.0002 -0.003 -0.004 -0.001 -0.001 -0.003 -0.001 0.002 0.002
Residual Std. Error 0.433 (df = 451) 0.435 (df = 450) 0.434 (df = 450) 0.435 (df = 449) 0.438 (df = 430) 0.438 (df = 429) 0.438 (df = 428) 0.435 (df = 424) 0.440 (df = 427) 0.426 (df = 2851) 0.435 (df = 3939)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the student and classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level. Dependent variables are in a [-1, 1] likert scale.

Goal setting 2: When planning my day, I think about how my activities are related to what I want to achieve in life

Dependent variable:
Goal setting 2: When planning my day, I think about how my activities are related to what I want to achieve in life
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring 0.014 -0.006 0.071 0.050 -0.009 0.039 0.051 0.051 0.089** 0.040 0.052
(0.041) (0.043) (0.056) (0.047) (0.047) (0.039) (0.042) (0.043) (0.039) (0.048) (0.045)
Female Teacher 0.118* 0.022 0.072 0.100*** -0.048 -0.143*** 0.136*** -0.012 0.069 0.050 0.054*
(0.061) (0.031) (0.052) (0.037) (0.057) (0.028) (0.023) (0.043) (0.051) (0.038) (0.030)
Monitoring x Female Teacher 0.026 -0.106 -0.090 0.080 -0.095 -0.116* -0.044 -0.054
(0.000) (0.069) (0.107) (0.066) (0.076) (0.000) (0.059) (0.000) (0.060) (0.050) (0.045)
Observations 454 454 454 453 434 433 433 428 431 2,846 3,934
R2 0.008 0.006 0.009 0.010 0.006 0.011 0.013 0.008 0.016 0.002 0.003
Adjusted R2 0.001 -0.003 -0.0002 0.001 -0.003 0.002 0.001 -0.002 0.006 0.001 0.002
Residual Std. Error 0.435 (df = 450) 0.436 (df = 449) 0.435 (df = 449) 0.435 (df = 448) 0.439 (df = 429) 0.438 (df = 428) 0.438 (df = 427) 0.432 (df = 423) 0.440 (df = 426) 0.430 (df = 2842) 0.436 (df = 3930)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the student and classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level. Dependent variables are in a [-1, 1] likert scale.

Average goal setting

Dependent variable:
Average goal setting
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring 0.013 -0.011 0.072 0.053 0.008 0.042 0.049 0.049 0.079** 0.044 0.051
(0.035) (0.038) (0.047) (0.043) (0.043) (0.035) (0.035) (0.037) (0.038) (0.043) (0.040)
Female Teacher 0.160*** 0.008 0.082* 0.088** -0.048 -0.086*** 0.097*** -0.020 0.029 0.040 0.044
(0.048) (0.028) (0.045) (0.037) (0.053) (0.024) (0.018) (0.035) (0.058) (0.036) (0.029)
Monitoring x Female Teacher 0.056 -0.073 -0.094* 0.034 -0.046 -0.073 -0.032 -0.039
(0.000) (0.060) (0.101) (0.048) (0.066) (0.000) (0.072) (0.000) (0.070) (0.048) (0.043)
Observations 454 454 454 453 434 433 433 428 431 2,846 3,934
R2 0.010 0.006 0.009 0.009 0.005 0.010 0.013 0.008 0.014 0.003 0.003
Adjusted R2 0.003 -0.003 0.001 -0.0001 -0.004 0.001 0.002 -0.001 0.004 0.002 0.003
Residual Std. Error 0.393 (df = 450) 0.394 (df = 449) 0.393 (df = 449) 0.394 (df = 448) 0.399 (df = 429) 0.399 (df = 428) 0.399 (df = 427) 0.393 (df = 423) 0.399 (df = 426) 0.388 (df = 2842) 0.395 (df = 3930)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the student and classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level. Dependent variables are in a [-1, 1] likert scale.

Gratitude 1: I say “Thank you”

Dependent variable:
Gratitude 1: I say “Thank you”
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring -0.035 -0.077* -0.011 -0.039 -0.067 0.027 0.039 0.033 0.080* 0.005 -0.002
(0.038) (0.045) (0.042) (0.045) (0.050) (0.036) (0.041) (0.037) (0.048) (0.044) (0.041)
Female Teacher 0.100** -0.018 0.018 0.018 -0.056 -0.073** 0.100*** 0.029 0.143*** 0.015 0.022
(0.048) (0.055) (0.043) (0.054) (0.036) (0.029) (0.029) (0.034) (0.030) (0.032) (0.025)
Monitoring x Female Teacher 0.089 -0.051 0.045 0.120* -0.065 -0.141** 0.005 0.006
(0.000) (0.076) (0.095) (0.072) (0.061) (0.000) (0.051) (0.000) (0.065) (0.045) (0.041)
Observations 454 454 454 453 434 433 433 428 431 2,846 3,934
R2 0.003 0.006 0.002 0.004 0.007 0.010 0.007 0.008 0.015 0.0004 0.001
Adjusted R2 -0.003 -0.002 -0.007 -0.005 -0.003 0.0005 -0.004 -0.001 0.006 -0.001 -0.00003
Residual Std. Error 0.386 (df = 450) 0.386 (df = 449) 0.387 (df = 449) 0.387 (df = 448) 0.393 (df = 429) 0.392 (df = 428) 0.393 (df = 427) 0.384 (df = 423) 0.392 (df = 426) 0.385 (df = 2842) 0.389 (df = 3930)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the student and classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level. Dependent variables are in a [-1, 1] likert scale.

Gratitude 2: I did something nice to show my appreciation

Dependent variable:
Gratitude 2: I did something nice to show my appreciation
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring -0.065 -0.083 -0.040 -0.061 -0.089 -0.006 -0.021 -0.008 0.052 -0.007 -0.034
(0.048) (0.061) (0.061) (0.051) (0.063) (0.050) (0.056) (0.052) (0.067) (0.055) (0.051)
Female Teacher 0.171*** -0.039 0.033 0.089 -0.082 -0.195*** 0.017 0.138*** 0.147** -0.004 0.005
(0.046) (0.048) (0.063) (0.071) (0.070) (0.043) (0.044) (0.039) (0.068) (0.039) (0.031)
Monitoring x Female Teacher 0.102 0.009 0.051 0.126 0.123* -0.109 0.073 0.071
(0.000) (0.089) (0.107) (0.080) (0.084) (0.000) (0.072) (0.000) (0.092) (0.054) (0.049)
Observations 453 453 453 452 433 432 432 427 430 2,846 3,925
R2 0.007 0.005 0.004 0.013 0.007 0.009 0.009 0.008 0.009 0.002 0.002
Adjusted R2 0.0004 -0.004 -0.005 0.004 -0.003 -0.00004 -0.002 -0.001 -0.0002 0.001 0.001
Residual Std. Error 0.481 (df = 449) 0.482 (df = 448) 0.482 (df = 448) 0.480 (df = 447) 0.487 (df = 428) 0.486 (df = 427) 0.487 (df = 426) 0.479 (df = 422) 0.485 (df = 425) 0.479 (df = 2842) 0.483 (df = 3921)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the student and classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level. Dependent variables are in a [-1, 1] likert scale.

Average gratitude

Dependent variable:
Average gratitude
Round 1 Round 2 Round 3 Round 4 Round 5 Round 6 Round 7 Round 8 Round 9 Pure Treatment Perc. courses monitored
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11)
Monitoring -0.050 -0.080 -0.026 -0.051 -0.078 0.010 0.009 0.013 0.065 -0.001 -0.018
(0.038) (0.050) (0.046) (0.043) (0.051) (0.039) (0.045) (0.040) (0.054) (0.045) (0.042)
Female Teacher 0.135*** -0.027 0.025 0.051 -0.067 -0.133*** 0.059* 0.085*** 0.141*** 0.005 0.013
(0.030) (0.048) (0.048) (0.059) (0.047) (0.034) (0.034) (0.032) (0.048) (0.033) (0.026)
Monitoring x Female Teacher 0.095 -0.023 0.051 0.123* 0.028 -0.122 0.040 0.040
(0.000) (0.072) (0.098) (0.065) (0.064) (0.000) (0.055) (0.000) (0.075) (0.046) (0.041)
Observations 452 452 452 451 432 431 431 426 429 2,837 3,916
R2 0.006 0.007 0.003 0.010 0.008 0.010 0.008 0.009 0.013 0.001 0.002
Adjusted R2 -0.0002 -0.002 -0.006 0.001 -0.002 0.001 -0.003 -0.0004 0.004 0.0003 0.001
Residual Std. Error 0.392 (df = 448) 0.392 (df = 447) 0.393 (df = 447) 0.392 (df = 446) 0.398 (df = 427) 0.398 (df = 426) 0.398 (df = 425) 0.389 (df = 421) 0.398 (df = 424) 0.391 (df = 2833) 0.394 (df = 3912)
Note: p<0.1; p<0.05; p<0.01
Estimates are OLS with course fixed effects. Standard errors are clustered at the student and classs level, except for percentage monitoring and pure treatment, where they are clustered at the student level. Dependent variables are in a [-1, 1] likert scale.

Is the monitoring’s effect on IAT score due to selection bias?

Round 9 monitoring Heckman Models

monit_round9_models <- list()

for (heck.control in unlist(heck.controls)) {
  selection_formula <- formula(paste('!skip_iat ~ monitoreo  + ', heck.control))
  outcome_formula <- formula(paste('iat_score ~ monitoreo  + ', heck.control))
  
  tryCatch({
    heck.monit.round9.iat_score.cv <- selection(selection_formula, outcome_formula,
                                                data = data %>% filter(round == 9))
    monit_round9_models[[heck.control]] <- heck.monit.round9.iat_score.cv
    # print(heck.control)
    # print(summary(heck.monit.round9.iat_score.cv))
  }, error=function(e){
    # print(heck.control)
    #print(e)
  })
}

stargazer(monit_round9_models,
          type = 'html',
          dep.var.labels = c('IAT Score'),
          covariate.labels = c('Monitoring', 'Participant - Female', 'Participant - Judge', 'Participant - Years of Tenure', 'Early Responder'),
          notes=c("<span>&#42;&#42;&#42;</span>: p<0.01; <span>&#42;&#42;</span>: p<0.05; <span>&#42;</span>: p<0.1",
                  "Estimates are Heckman-style selection models. Every column shows coefficients for different combinations of control variables",
                  "'Early responder' started the final exercises on the same weekends as the workshop."),
          notes.append=F)
Dependent variable:
IAT Score
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15)
Monitoring 0.019 0.019 0.017 0.886 0.607 0.018 0.397 0.008 0.913 -0.118 0.017 0.023 -0.007 0.128 -0.099
(0.048) (0.072) (0.056) (Inf.000) (0.449) (0.046) (0.264) (0.069) (0.654) (0.190) (0.048) (0.051) (0.102) (0.131) (0.200)
Participant - Female -0.015 1.731*** -0.011 1.257*** -0.011 -0.016 0.438*** 0.449**
(0.039) (0.417) (0.040) (0.199) (0.041) (0.039) (0.095) (0.202)
Participant - Judge -0.0001 1.312*** 0.005 2.092*** 0.004 0.008 0.388*** 0.286
(0.041) (0.460) (0.042) (0.645) (0.041) (0.041) (0.139) (0.219)
Participant - Years of Tenure -0.008 -0.007 -0.009 -0.011 -0.007 -0.124*** -0.050* -0.033
(0.010) (0.009) (0.011) (0.024) (0.010) (0.022) (0.030) (0.040)
Early Responder 1.945 1.055*** 2.409*** 0.313 -0.050 0.300*** 0.442*** 0.289
(Inf.000) (0.225) (0.615) (0.192) (0.039) (0.102) (0.124) (0.205)
Constant -0.177 -0.185 -0.146 -2.127 -2.514*** -0.142 -2.049*** -0.173 -3.358*** -1.116*** -0.144 -0.165 -0.882*** -0.673*** -1.282***
(0.119) (0.215) (0.123) (Inf.000) (0.294) (0.095) (0.126) (0.161) (0.412) (0.095) (0.106) (0.133) (0.136) (0.183) (0.235)
Observations 370 370 370 370 370 370 370 370 370 370 370 370 370 370 370
Log Likelihood -272.680 -272.848 -272.011 -686.564 -773.589 -271.757 -653.469 -271.939 -877.759 -555.904 -271.684 -271.784 -551.317 -445.016 -572.197
rho 0.016 (0.972) 0.033 (1.843) 0.059 (1.223) 1.000 (Inf.000) 0.990 0.035 (0.828) 1.000 0.334 (1.537) 0.990 1.000 0.054 (0.950) 0.030 (1.057) 0.996 1.000*** (0.001) 0.998
Note: ***: p<0.01; **: p<0.05; *: p<0.1
Estimates are Heckman-style selection models. Every column shows coefficients for different combinations of control variables
‘Early responder’ started the final exercises on the same weekends as the workshop.

Perc. courses Heckman Models

monit_ratio_models <- list(no_controls = heck.monit.ratio.iat_score)

for (heck.control in unlist(heck.controls)) {
  selection_formula <- formula(paste('!skip_iat ~ monitoreo  + ', heck.control))
  outcome_formula <- formula(paste('iat_score ~ monitoreo  + ', heck.control))
  tryCatch({
    heck.monit.ratio.iat_score.cv <- selection(selection_formula, outcome_formula, data = monit_perc)
    monit_ratio_models[[heck.control]] <- heck.monit.ratio.iat_score.cv
    # print(heck.control)
    # print(summary(heck.monit.ratio.iat_score.cv))
  }, error=function(e){
    # print(heck.control)
    # print(e)
  })
}



stargazer(monit_ratio_models,
          type = 'html',
          dep.var.labels = c('IAT Score'),
          covariate.labels = c('Monitoring', 'Participant - Female', 'Participant - Judge', 'Participant - Years of Tenure', 'Early Responder'),
          notes=c("<span>&#42;&#42;&#42;</span>: p<0.01; <span>&#42;&#42;</span>: p<0.05; <span>&#42;</span>: p<0.1",
                  "Estimates are Heckman-style selection models. Every column shows coefficients for different combinations of control variables",
                  "'Early responder' started the final exercises on the same weekends as the workshop."),
          notes.append=F)
Dependent variable:
IAT Score NA
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16)
Monitoring -0.017 -0.014 0.280*** 0.086*** 0.232*** 0.086*** 0.085*** 0.091*** 0.084*** 0.254 -0.421*** 0.084*** 0.091*** 0.090*** -0.149*** 0.091***
(0.046) (Inf.000) (0.015) (0.021) (0.057) (0.020) (0.018) (0.019) (0.027) (Inf.000) (0.049) (0.019) (0.020) (0.018) (0.044) (0.019)
Participant - Female 0.236 -0.021 -0.016 -0.020 -0.016 -0.021 -0.016 -0.017
(Inf.000) (0.013) (0.013) (0.013) (0.014) (0.013) (0.013) (0.013)
Participant - Judge -0.176*** 0.006 0.009 -0.258 0.010 0.016 0.219*** 0.019
(0.027) (0.013) (0.014) (Inf.000) (0.013) (0.013) (0.043) (0.013)
Participant - Years of Tenure -0.008*** -0.008*** -0.009** -0.060*** -0.008*** -0.008*** -0.019** -0.008***
(0.003) (0.003) (0.003) (0.010) (0.003) (0.003) (0.008) (0.003)
Early Responder -0.649*** -0.064*** -0.311 0.108** -0.066*** -0.063*** 0.094** -0.065***
(0.045) (0.012) (Inf.000) (0.046) (0.013) (0.012) (0.042) (0.013)
Constant 0.111*** -0.599 0.130*** -0.169*** 0.433*** -0.207*** -0.166*** -0.184*** -0.175*** 0.330 -1.187*** -0.169*** -0.188*** -0.146*** -0.716*** -0.150***
(0.030) (Inf.000) (0.019) (0.032) (0.033) (0.036) (0.028) (0.032) (0.044) (Inf.000) (0.057) (0.031) (0.037) (0.028) (0.051) (0.031)
Observations 3,390 3,390 3,390 3,385 3,390 3,390 3,385 3,390 3,385 3,390 3,385 3,385 3,390 3,385 3,385 3,385
Log Likelihood -3,995.410 -3,420.246 -3,368.208 -2,463.315 -4,482.514 -2,468.077 -2,458.919 -2,455.920 -2,461.761 -3,949.339 -5,704.835 -2,457.232 -2,454.309 -2,446.037 -4,023.765 -2,443.654
rho -0.998 1.000 (Inf.000) -1.000 0.026 (0.316) -0.999 0.015 (0.300) 0.034 (0.238) 0.015 (0.267) 0.072 (0.460) -1.000 (Inf.000) 1.000 0.045 (0.274) 0.016 (0.305) 0.034 (0.238) 0.998 0.040 (0.269)
Note: ***: p<0.01; **: p<0.05; *: p<0.1
Estimates are Heckman-style selection models. Every column shows coefficients for different combinations of control variables
‘Early responder’ started the final exercises on the same weekends as the workshop.

Pure control monitoring Heckman Models

monit_pure_models <- list()

for (heck.control in unlist(heck.controls)) {
  selection_formula <- formula(paste('!skip_iat ~ monitoreo  + ', heck.control))
  outcome_formula <- formula(paste('iat_score ~ monitoreo  + ', heck.control))
  
  tryCatch({
    heck.monit.pure.iat_score.cv <- selection(selection_formula, outcome_formula,
                                                data = pure_control)
    monit_pure_models[[heck.control]] <- heck.monit.pure.iat_score.cv
    
     #print(heck.control)
     #print(summary(heck.monit.pure.iat_score.cv))
  }, error=function(e){
     #print(heck.control)
  #print(e)
  })
}

stargazer(monit_pure_models,
          type = 'html',
          dep.var.labels = c('IAT Score'),
          covariate.labels = c('Monitoring', 'Participant - Female', 'Participant - Judge', 'Participant - Years of Tenure', 'Early Responder'),
          notes=c("<span>&#42;&#42;&#42;</span>: p<0.01; <span>&#42;&#42;</span>: p<0.05; <span>&#42;</span>: p<0.1",
                  "Estimates are Heckman-style selection models. Every column shows coefficients for different combinations of control variables",
                  "'Early responder' started the final exercises on the same weekends as the workshop."),
          notes.append=F)
Dependent variable:
IAT Score
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15)
Monitoring -0.014 0.089*** 0.086*** -0.357*** 0.088*** 0.086*** -0.438** 0.085*** -0.082* 0.093*** 0.086*** -0.173** 0.093*** 0.092*** 0.092***
(0.109) (0.027) (0.020) (0.067) (0.024) (0.019) (0.189) (0.022) (0.047) (0.020) (0.020) (0.067) (0.019) (0.021) (0.019)
Participant - Female 1.662*** -0.024 -0.019 1.819*** -0.018 0.443*** -0.016 -0.015
(0.083) (0.015) (0.015) (0.177) (0.015) (0.067) (0.015) (0.015)
Participant - Judge -0.044*** -0.043*** -0.041** 0.289*** -0.040** 0.422*** -0.030* -0.030*
(0.017) (0.017) (0.017) (0.052) (0.017) (0.075) (0.017) (0.017)
Participant - Years of Tenure -0.017*** -0.016*** -0.017*** -0.018*** -0.016*** -0.018*** -0.018*** -0.017***
(0.005) (0.005) (0.005) (0.005) (0.005) (0.005) (0.005) (0.005)
Early Responder 1.126*** 1.598*** 0.209*** -0.075*** 0.306*** -0.074*** -0.071*** -0.071***
(0.053) (0.184) (0.049) (0.015) (0.070) (0.015) (0.015) (0.015)
Constant -1.450*** -0.214*** -0.141*** -1.271*** -0.205*** -0.136*** -2.319*** -0.134*** -0.706*** -0.109*** -0.129*** -1.053*** -0.105*** -0.105*** -0.101***
(0.068) (0.046) (0.029) (0.030) (0.042) (0.029) (0.134) (0.031) (0.030) (0.030) (0.030) (0.047) (0.029) (0.031) (0.030)
Observations 2,432 2,432 2,432 2,432 2,432 2,432 2,432 2,432 2,432 2,432 2,432 2,432 2,432 2,432 2,432
Log Likelihood -4,097.387 -1,792.339 -1,779.133 -3,515.098 -1,790.687 -1,777.146 -5,010.240 -1,774.010 -2,729.838 -1,766.392 -1,771.923 -3,322.238 -1,764.728 -1,762.832 -1,760.989
rho 1.000*** (0.00004) 0.024 (0.393) 0.053 (0.249) 1.000* (0.606) 0.032 (0.345) 0.044 (0.219) 1.000 (1.823) 0.074 (0.279) 1.000*** (0.153) 0.052 (0.245) 0.054 (0.234) 1.000*** (0.0001) 0.041 (0.217) 0.065 (0.263) 0.048 (0.226)
Note: ***: p<0.01; **: p<0.05; *: p<0.1
Estimates are Heckman-style selection models. Every column shows coefficients for different combinations of control variables
‘Early responder’ started the final exercises on the same weekends as the workshop.

After exploring all possible combinations of control variables: "female", "level", "judge", "years_tenure", "early_participant", on the 9th round of monitoring, the percentage f monitored courses and the pure treatment especifications we found three models with significant rhos (none of the models for the percentage of courses monitored had a significant rho):

#formula <- as.formula(paste0(outcome, ' ~ monitoreo | idcurso | 0 | aula'))
  
out_list <- list()

for (r in 1:9) {
  
  tryCatch({
    
    model <- selection(!skip_iat ~ monitoreo + female + level_2 + judge + years_tenure + early_participant, iat_score ~ monitoreo + female + level_2 + level_3 + judge + years_tenure + early_participant, data = data %>% filter(round == r))
    out_list[[sprintf('Round %i', r)]] <- model
    
  }, error=function(e){

  })
}

tryCatch({
    
    out_list[['Pure Treatment']] <- selection(!skip_iat ~ monitoreo + female + level_2 + judge + years_tenure + early_participant,
                                              iat_score ~ monitoreo + female + level_2 + judge + years_tenure + early_participant, data = pure_control)
    
  }, error=function(e){

  })

tryCatch({
    
    out_list[['Perc. courses monitored']] <- selection(!skip_iat ~ monitoreo + female + level_2 + level_3 + judge + years_tenure + early_participant,
                                                       iat_score ~ monitoreo + female + level_2 + level_3 + judge + years_tenure + early_participant, data = monit_perc)
    
  }, error=function(e){

  })

NULL

# stargazer(out_list,
#           type = 'html',
#           dep.var.labels = c('IAT Score'),
#           notes=c("<span>&#42;&#42;&#42;</span>: p<0.01; <span>&#42;&#42;</span>: p<0.05; <span>&#42;</span>: p<0.1",
#                   "Estimates are Heckman-style selection models.",
#                   "'Early responder' started the final exercises on the same weekends as the workshop."),
#           notes.append=F)

Lee (2009) approach

Lee (2009) proposes an estimator for treatment effect bounds under the assumptions of random assignment of treatment and monotonicity. We use this approach since the monitoring intervention increased the likelihood of the students skipping the IAT score sections, potentially creating bias in the IAT score estimates. We find lower bounds different from zero from round 6 onwards, suggesting an incremental effect of the monitoring intervention.

## Estimation of Lee Bounds for IAT scores

# Load Utils (leebounds functions)
source(paste0(github,"utils/utils_leebounds.R"))

# Find mean of IAT scores for those in the treatment group (monitoring)
mean_treatment_group <- data %>%
  filter(monitoreo == 1) %>%
  group_by(monitoreo) %>%
  summarize(mean_treatment = mean(iat_score, na.rm = TRUE)) 
mean_treatment_group <- mean_treatment_group[[2]]  

# Preprocess dataset for rounds
leebound_rounds.list <- data %>% 
  select("dni", "round", "monitoreo", "skip_iat", "iat_score", "female", "level_2", "level_3", "judge", "years_tenure", "early_participant") %>%
  filter(!is.na(skip_iat)) %>% 
  mutate(
    selection = !(skip_iat),
    #iat_score = case_when(
    #  iat_score == iat_score ~ iat_score,
    #  selection == TRUE  ~ mean_treatment_group), 
    years_tenure = replace(years_tenure, is.na(years_tenure), 0),
    vars_deleted = is.na(iat_score) & skip_iat == 0) %>%
  rename(treat = monitoreo, outcome = iat_score) %>%
  filter(vars_deleted == FALSE) %>% 
  group_split(round) %>% 
  as.list() %>% 
  map(pivot_wider)

# Define Control vars
control_vars <- c("female", "judge")
#control_vars <- c("female", "level_2")


# Linear model fit
leebound_rounds.list <- lapply(leebound_rounds.list, function(x){
  
  lm.fit_x<-lm(form=as.formula(paste0("outcome~",paste0(control_vars,collapse="+")) ), 
               data=x[x$selection==1,])
  
  x$predicted_iat_score<-predict(lm.fit_x,x)
  x$predicted_iat_group<-sapply(x$predicted_iat_score,Lee_grouping)
  return(x)
})

# Lee bounds -------------------------------------------------------------------

# Lee bounds without controls
estimate <- numeric()
for(i in 1:9) {                 
  out_est <- GetBounds(leebounds(leebound_rounds.list[[i]]))   
  estimate <- c(estimate, out_est) 
}

# Lee bounds without controls
estimate_r1 <-GetBounds(leebounds(leebound_rounds.list[[1]]))
estimate_r2 <-GetBounds(leebounds(leebound_rounds.list[[2]]))
estimate_r3 <-GetBounds(leebounds(leebound_rounds.list[[3]]))
estimate_r4 <-GetBounds(leebounds(leebound_rounds.list[[4]]))
estimate_r5 <-GetBounds(leebounds(leebound_rounds.list[[5]]))
estimate_r6 <-GetBounds(leebounds(leebound_rounds.list[[6]]))
estimate_r7 <-GetBounds(leebounds(leebound_rounds.list[[7]]))
estimate_r8 <-GetBounds(leebounds(leebound_rounds.list[[8]]))
estimate_r9 <-GetBounds(leebounds(leebound_rounds.list[[9]]))

# Lee bounds with controls
estimates_sharp_r1 <-GetBounds(Lee_sharp_bounds(leebound_rounds.list[[1]],group_name="predicted_iat_group",treat_helps = FALSE))
estimates_sharp_r2 <-GetBounds(Lee_sharp_bounds(leebound_rounds.list[[2]],group_name="predicted_iat_group",treat_helps = FALSE))
estimates_sharp_r3 <-GetBounds(Lee_sharp_bounds(leebound_rounds.list[[3]],group_name="predicted_iat_group",treat_helps = FALSE))
estimates_sharp_r4 <-GetBounds(Lee_sharp_bounds(leebound_rounds.list[[4]],group_name="predicted_iat_group",treat_helps = FALSE))
estimates_sharp_r5 <-GetBounds(Lee_sharp_bounds(leebound_rounds.list[[5]],group_name="predicted_iat_group",treat_helps = FALSE))
estimates_sharp_r6 <-GetBounds(Lee_sharp_bounds(leebound_rounds.list[[6]],group_name="predicted_iat_group",treat_helps = FALSE))
estimates_sharp_r7 <-GetBounds(Lee_sharp_bounds(leebound_rounds.list[[7]],group_name="predicted_iat_group",treat_helps = FALSE))
estimates_sharp_r8 <-GetBounds(Lee_sharp_bounds(leebound_rounds.list[[8]],group_name="predicted_iat_group",treat_helps = FALSE))
estimates_sharp_r9 <-GetBounds(Lee_sharp_bounds(leebound_rounds.list[[9]],group_name="predicted_iat_group",treat_helps = FALSE))

# Lee Bounds for Pure control and Monit Percentage -----------------------------

## Pure control

# Preprocess dataset
leebound_pure_control <- pure_control %>% 
  select("dni", "monitoreo", "skip_iat", "iat_score", "female", "level_2", "level_3", "judge", "years_tenure", "early_participant") %>%
  filter(!is.na(skip_iat)) %>% 
  mutate(
    selection = !(skip_iat),
    #iat_score = case_when(
      #iat_score == iat_score ~ iat_score,
      #selection == TRUE  ~ mean_treatment_group), 
    years_tenure = replace(years_tenure, is.na(years_tenure), 0),
    vars_deleted = is.na(iat_score) & skip_iat == 0,
    weights = 1) %>% 
  filter(vars_deleted == FALSE) %>% 
  rename(treat = monitoreo, outcome = iat_score) 




# Linear model fit
lm.fit_pure_control <-lm(form=as.formula(paste0("outcome~",paste0(control_vars,collapse="+")) ), 
              data=leebound_pure_control[leebound_pure_control$selection==1,])

leebound_pure_control$predicted_iat_score<-predict(lm.fit_pure_control,leebound_pure_control)
leebound_pure_control$predicted_iat_group<-sapply(leebound_pure_control$predicted_iat_score,Lee_grouping)

# Lee bounds
estimate_pure_control <-GetBounds(leebounds(leebound_pure_control))

# Lee bounds with controls
estimate_sharp_pure_control <-GetBounds(Lee_sharp_bounds(leebound_pure_control,group_name="predicted_iat_group",treat_helps = FALSE))

## Monit_percentage

# Preprocess dataset
leebound_monit_perc <- monit_perc %>% 
  select("dni", "monitoreo", "skip_iat", "iat_score", "female", "level_2", "level_3", "judge", "years_tenure", "early_participant") %>%
  filter(!is.na(skip_iat)) %>% 
  mutate(
    selection = !(skip_iat),
    #iat_score = case_when(
    #  iat_score == iat_score ~ iat_score,
    #  selection == TRUE  ~ mean_treatment_group), 
    years_tenure = replace(years_tenure, is.na(years_tenure), 0),
    vars_deleted = is.na(iat_score) & skip_iat == 0,
    weights = 1) %>% 
  filter(vars_deleted == FALSE) %>% 
  rename(treat = monitoreo, outcome = iat_score) 

# Linear model fit
lm.fit_monit_perc <-lm(form=as.formula(paste0("outcome~",paste0(control_vars,collapse="+")) ), 
                         data=leebound_monit_perc[leebound_monit_perc$selection==1,])

leebound_monit_perc$predicted_iat_score<-predict(lm.fit_monit_perc,leebound_monit_perc)
leebound_monit_perc$predicted_iat_group<-sapply(leebound_monit_perc$predicted_iat_score,Lee_grouping)

# Lee bounds
estimate_monit_perc <-GetBounds(leebounds(leebound_monit_perc))

# Lee bounds with controls
estimate_sharp_monit_perc <-GetBounds(Lee_sharp_bounds(leebound_monit_perc,group_name="predicted_iat_group",treat_helps = FALSE))

# Generalized lee bounds -------------------------------------------------------
N_rep=500
ci_alpha=0.05
quantile_grid_size=0.01

# Pure control ----
form_nonmonotone<-as.formula(paste0("selection~(treat)*(", paste0(control_vars,collapse="+"),")"))

min_iat=min(leebound_pure_control$outcome[leebound_pure_control$selection==1])
max_iat=max(leebound_pure_control$outcome[leebound_pure_control$selection==1])

glm.fit<-glm(form=form_nonmonotone,data= leebound_pure_control,family="binomial")
res<-predict_selection(glm.fit, leebound_pure_control)
s.hat=data.frame(s.0.hat=res$s.0.hat, s.1.hat=res$s.1.hat)
p.0.star<-s.hat$s.0.hat/s.hat$s.1.hat
inds_helps<-(p.0.star<=1)
inds_hurts<-(!inds_helps)

# Estimates
estimates_g_pure_control<-GetBounds(leebounds_wout_monotonicity(leebound_pure_control,p.0.star))

bounds_g_pure_control<-main_bb(function_name=leebounds_wout_monotonicity,p.0.star=p.0.star,mydata=leebound_pure_control[,c("treat","selection","outcome","weights")],N_rep=N_rep)

## confidence region for identified set
CR_g_pure_control<-compute_confidence_region(bounds_g_pure_control,estimates_g_pure_control, ci_alpha=ci_alpha )


# Monit_perc ----
form_nonmonotone<-as.formula(paste0("selection~(treat)*(", paste0(control_vars,collapse="+"),")"))

min_iat=min(leebound_monit_perc$outcome[leebound_monit_perc$selection==1])
max_iat=max(leebound_monit_perc$outcome[leebound_monit_perc$selection==1])

glm.fit<-glm(form=form_nonmonotone,data= leebound_monit_perc,family="binomial")
res<-predict_selection(glm.fit, leebound_monit_perc)
s.hat=data.frame(s.0.hat=res$s.0.hat, s.1.hat=res$s.1.hat)
p.0.star<-s.hat$s.0.hat/s.hat$s.1.hat
inds_helps<-(p.0.star<=1)
inds_hurts<-(!inds_helps)

# Estimates
estimates_g_monit_perc<-GetBounds(leebounds_wout_monotonicity(leebound_monit_perc,p.0.star))

bounds_g_monit_perc<-main_bb(function_name=leebounds_wout_monotonicity,p.0.star=p.0.star,mydata=leebound_monit_perc[,c("treat","selection","outcome","weights")],N_rep=N_rep)

## confidence region for identified set
CR_g_monit_perc<-compute_confidence_region(bounds_g_monit_perc,estimates_g_pure_control, ci_alpha=ci_alpha )

# Generalized estimates
source(file.path("/Users/bran/Dropbox/WB/AMAG1/leebounds/generalized_lee.R"))
### Table with results ---------------------------------------------------------


# Table
ht <- hux(
  Round = c('Round 1', 'Round 2',  'Round 3',  'Round 4',  'Round 5',  'Round 6',  'Round 7',  'Round 8',  'Round 9',  'Pure Treatment', 'Perc. courses monitored'),
  Basic = c(estimate_r1, estimate_r2, estimate_r3, estimate_r4, estimate_r5, estimate_r6, estimate_r7, estimate_r8, estimate_r9, estimate_pure_control, estimate_monit_perc),
  Covariate_Based = c(estimates_sharp_r1, estimates_sharp_r2, estimates_sharp_r3, estimates_sharp_r4, estimates_sharp_r5, estimates_sharp_r6, estimates_sharp_r7, estimates_sharp_r8, estimates_sharp_r9, estimate_sharp_pure_control, estimate_sharp_monit_perc),
  Generalized = c(estimates_g_r1, estimates_g_r2, estimates_g_r3, estimates_g_r4, estimates_g_r5, estimates_g_r6, estimates_g_r7, estimates_g_r8, estimates_g_r9, estimates_g_pure_control, estimates_g_monit_perc),
  add_colnames = TRUE)

ht <-  add_footnote(ht, "N between 434 (round 1) and 560 (pure control) observations. Each panel reports estimated lower and upper bounds. Column (1) reports basic Lee Bounds. Column (2) reports covariate-based Lee bounds. Covariates include: female, level, judge. Column (3) reports Generalized Lee Bounds from Semenova (2021)")

ht                                        %>%
      set_bold(1, everywhere)             %>%
      set_bottom_border(1, everywhere)    %>%
      set_align(everywhere, 2, 'right')   %>%
      set_lr_padding(10)                  %>%
      set_width(0.7)                     %>%
      set_number_format(col= "Round", value = 0)
RoundBasicCovariate_BasedGeneralized
Round 1[-0.002, 0.138][-0.003, 0.139][-0.012, 0.146]
Round 2[0.001, 0.141][-0.002, 0.143][-0.007, 0.147]
Round 3[-0.003, 0.143][-0.004, 0.144][-0.009, 0.148]
Round 4[-0.002, 0.144][-0.003, 0.145][-0.008, 0.149]
Round 5[0.003, 0.145][0.001, 0.15][0.001, 0.147]
Round 6[0.019, 0.138][0.023, 0.151][0.019, 0.138]
Round 7[0.022, 0.155][0.026, 0.168][0.022, 0.155]
Round 8[0.03, 0.158][0.033, 0.168][0.03, 0.158]
Round 9[-0.039, 0.077][-0.03, 0.088][-0.042, 0.079]
Pure Treatment[0.001, 0.171][-0.004, 0.18][0.001, 0.171]
Perc. courses monitored[-0.006, 0.164][-0.003, 0.161][-0.006, 0.164]
N between 434 (round 1) and 560 (pure control) observations. Each panel reports estimated lower and upper bounds. Column (1) reports basic Lee Bounds. Column (2) reports covariate-based Lee bounds. Covariates include: female, level, judge. Column (3) reports Generalized Lee Bounds from Semenova (2021)